Skip to content

Ultimate preprocessing#51

Merged
calvinyeungck merged 11 commits intomasterfrom
ultimate_preprocessing
Oct 8, 2025
Merged

Ultimate preprocessing#51
calvinyeungck merged 11 commits intomasterfrom
ultimate_preprocessing

Conversation

@shunsuke-iwashita
Copy link
Collaborator

This pull request adds comprehensive support for Ultimate Frisbee tracking data preprocessing, introducing modular handling for two distinct data providers: UFA and Ultimate Track. It refactors the main interface, adds provider-specific preprocessing pipelines, and updates configuration files and documentation to clarify usage and output formats.

Ultimate Frisbee Data Provider Integration:

  • Added new provider-specific preprocessing modules for UFA (ufa_preprocessing) and Ultimate Track (ultimatetrack_preprocessing), each with its own configuration and conversion logic to Metrica format. [1] [2] [3]
  • Refactored Ultimate_tracking_data class to accept a data_provider argument and delegate to the correct preprocessing pipeline based on provider ("UFA" or "UltimateTrack").

Configuration and Architecture Updates:

  • Introduced separate configuration files for UFA (ufa_preprocessing/preprocess_config.py) and Ultimate Track (ultimatetrack_preprocessing/preprocess_config.py), specifying field dimensions, player counts, tracking frequency, and column mappings. [1] [2]
  • Updated provider lists in tracking_class.py to recognize both "UFA" and "UltimateTrack" as valid Ultimate Frisbee data sources.

Testing and CLI Improvements:

  • Enhanced the CLI test harness in tracking_class.py to allow selection of data provider via command-line arguments, and added logic to test both UFA and Ultimate Track data pipelines, saving outputs in standardized locations. [1] [2] [3]

Documentation:

  • Added a detailed README for Ultimate Frisbee tracking data preprocessing, describing supported providers, input/output formats, architecture, usage examples, and configuration details.

Adds "UltimateTrack" and "UFA" as supported data providers for ultimate tracking data, replacing the previous single "ultimate_track" provider.

Enables processing of tracking data from multiple ultimate frisbee data sources.
Transforms static utility class into instance-based class that can handle different data providers (UltimateTrack and UFA).

Removes field specifications and utility methods to focus on core preprocessing functionality with provider-specific routing.
…ata providers

Updates field dimension constants to match actual Ultimate specifications
and removes unused roster size configuration.

Replaces single-format processing with modular pipeline that creates
intermediate files with calculated velocity/acceleration features
before converting to Metrica format.

Adds separate preprocessing functions for UltimateTrack and UFA data
providers to handle different input formats while maintaining
consistent output structure.

Improves code maintainability by separating feature calculation,
format conversion, and data provider specific logic into distinct
functions.
Replaces hardcoded test execution with argparse-based data provider selection, enabling flexible testing of different tracking data sources (soccer, UltimateTrack, UFA) from command line.

Restructures the test logic to conditionally execute based on provider type and updates UFA/UltimateTrack testing to use new preprocessing interface with dynamic file paths and improved output naming conventions.
Creates detailed README explaining Ultimate Frisbee tracking data preprocessing architecture, supported data providers (UFA and Ultimate Track), and usage examples.

Simplifies preprocessing method signature by removing unused parameters and updates variable naming for better clarity (home/away -> offense/defense).

Reorganizes imports to improve code structure and readability.
Implements comprehensive preprocessing pipeline to convert UFA (Ultimate Frisbee Analytics) tracking data from native format to standardized Metrica format.

Enables analysis of professional Ultimate Frisbee games by providing structured access to player positions, velocities, disc tracking, and possession data at 10Hz frequency.

Supports standard Ultimate field dimensions and 7-player team configurations with proper handling of offense/defense team assignments and disc holder identification.
Consolidates multiple preprocessing functions into a single entry point to reduce API complexity and improve usability.

Updates configuration constants to use more generic naming conventions and removes unused helper functions.

Enhances motion feature calculations with proper rounding for better numerical precision and consistency.

Removes UFA-specific preprocessing logic to focus on UltimateTrack format support.
Cleans up documentation files that are no longer needed for the Ultimate Frisbee tracking data preprocessing module.

Removes the main README and UFA-specific documentation that provided usage examples and architectural details for the Ultimate tracking data system.

Removes outdated Ultimate Frisbee preprocessing docs

Cleans up documentation that is no longer needed for the Ultimate Frisbee tracking data preprocessing module.

Eliminates comprehensive README covering UFA format conversion, configuration parameters, and usage examples that are now obsolete.
@github-actions
Copy link

github-actions bot commented Oct 8, 2025

Init Test Results 📝

  • Status: success
  • OS: Linux
  • Python: 3.8

@github-actions
Copy link

github-actions bot commented Oct 8, 2025

Init Test Results 📝

  • Status: success
  • OS: Linux
  • Python: 3.9

@github-actions
Copy link

github-actions bot commented Oct 8, 2025

Init Test Results 📝

  • Status: success
  • OS: Linux
  • Python: 3.10

@github-actions
Copy link

github-actions bot commented Oct 8, 2025

Init Test Results 📝

  • Status: success
  • OS: Linux
  • Python: 3.10

@github-actions
Copy link

github-actions bot commented Oct 8, 2025

Init Test Results 📝

  • Status: success
  • OS: Linux
  • Python: 3.9

@github-actions
Copy link

github-actions bot commented Oct 8, 2025

Init Test Results 📝

  • Status: success
  • OS: Linux
  • Python: 3.8

@calvinyeungck calvinyeungck merged commit 6913089 into master Oct 8, 2025
3 checks passed
@calvinyeungck calvinyeungck deleted the ultimate_preprocessing branch February 16, 2026 13:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants